package smartlifev30.com.sdk.api.service_app;

import android.support.annotation.NonNull;

import smartlifev30.com.sdk.api.CallBack;
import smartlifev30.com.sdk.bean.response.LoginResponse;


/**
 * Created by tys on 2018/8/13.
 */

public interface IMessagePush {

    /**
     * 上传极光推送对应的RegId
     *
     * @param userName
     * @param token
     * @param jPushRegId
     * @param channelID
     * @param callBack
     */
    void jPushRegIdUpload(@NonNull String userName, @NonNull String token, @NonNull String jPushRegId,
                          @NonNull String channelID, @NonNull CallBack<LoginResponse> callBack);


    /**
     * 获取当前登录账号的消息推送设置
     *
     * @param userName
     * @param token
     * @param type     报警= Alert  门锁=Lock   事件= Event
     * @param callBack
     */
    void getPushConfig(@NonNull String userName, @NonNull String token, @NonNull String type,
                       @NonNull CallBack<LoginResponse> callBack);


    /**
     * 修改当前登录账号的消息推送设置
     *
     * @param userName
     * @param token
     * @param type     报警= Alert  门锁=Lock   事件= Event
     * @param app      1 = 开启， 0= 关闭
     * @param sms      1 = 开启， 0= 关闭
     * @param wechat   1 = 开启， 0= 关闭 (不可用)
     * @param email    1 = 开启， 0= 关闭
     * @param callBack
     */
    void setPushConfig(@NonNull String userName, @NonNull String token, @NonNull String type,
                       @NonNull Integer app, @NonNull Integer sms, @NonNull Integer wechat, @NonNull Integer email,
                       @NonNull CallBack<LoginResponse> callBack);


    /**
     * 获取指定网关的短信余额条数
     *
     * @param userName
     * @param token
     * @param sn
     * @param callBack
     */
    void getSmsBalance(@NonNull String userName, @NonNull String token, @NonNull String sn,
                       @NonNull CallBack<LoginResponse> callBack);


    /**
     * 获取用户的email
     * @param userName
     * @param token
     * @param callBack
     */
    void getEmail(@NonNull String userName, @NonNull String token, @NonNull CallBack<LoginResponse> callBack);


    /**
     *  设置用户的email
     * @param userName
     * @param token
     * @param email
     * @param callBack
     */
    void setEmail(@NonNull String userName, @NonNull String token, @NonNull String email,
                  @NonNull CallBack<LoginResponse> callBack);



}
